const mongoose=require('mongoose');
const Cate=require('../models/cate.model');
const News=require('../models/news.model');


//增
exports.create=function(req,res,next){
    const cate=new Cate(req.body);
    cate.save().then(data=>{
        res.json(data);
    })
}

//改
exports.update=function(req,res,next){
    const id=req.params.id;
    const cate=new Cate(req.body);

    //false表示若没有找到该id，则不添加新项
    Cate.findByIdAndUpdate(id,{$set:req.body},{new:false})
    .then((data)=>{
        res.json(data);// 千万注意：这里返回的data是没有修改之前的数据
    })
}

//查
exports.findOnlyOne=function(req,res,next){
    var id=req.params.id;
    Cate.findById(id,function(err,data){
        res.json(data);
    })
}




exports.list=function(req,res,next){
    var type=req.params.type||0;
    Cate.find({type:type},function(err,data){
        var rpTree=reverseTree(data,null);
        res.json(rpTree);
    })
}

function reverseTree(data,pid){
    var result=[];
    var temp;
    var data = JSON.parse( JSON.stringify(data) ); // 这句话非常非常非常的重要
    // 把一个数据模型的对象转成字符串，再把一个字符串转成对象---》 javascript object
    /* console.log(data); */

    for(var i in data){
        if(data[i].parentId===pid){
            result.push(data[i]);
            temp=reverseTree(data,data[i]._id);
            if(temp.length>0){
                data[i].children=temp;
            }
        }
    }
    return result;
}

//删
exports.remove=function(req,res,next){
    var id=req.params.id;
    var ids=[];
    
    Cate.findOne({_id:id},function(err,doc){
        if(doc){
            ids.push(doc.id);//加入该项

            doc.getChildren().then(function(docs){
                for(var i=0;i<docs.length;i++){
                    ids.push(docs[i]._id);
                }

                //删除
                Cate.remove({_id: {$in : id}}).then((data)=>{
                    res.json({'message':'数据删除成功'});
                })
            })
        }
    })
} 